// 登录处理函数
async function onLogin(e) {
  e.preventDefault();
  const username = e.target.username.value.trim();
  const password = e.target.password.value;
  const rememberMe = e.target.rememberMe.checked;

  console.log('[DEBUG] 登录尝试 - 用户名:', username, '密码长度:', password.length, '记住我:', rememberMe);

  if (!username || !password) {
    showResult('loginResult', { success: false, message: '用户名和密码不能为空' });
    return;
  }

  try {
    console.log('[DEBUG] 发送登录请求到:', api.login);
    const loginResp = await request(api.login, {
      method: 'POST',
      body: JSON.stringify({ username, password, rememberMe })
    });

    console.log('[DEBUG] 登录响应状态:', loginResp.status, '响应数据:', JSON.stringify(loginResp.data));
    
    if (loginResp.ok && loginResp.data && loginResp.data.success && loginResp.data.data && loginResp.data.data.token) {
      const receivedToken = loginResp.data.data.token;
      console.log('[DEBUG] 登录成功 - 获取到token:', receivedToken.substring(0, 10) + '...');
      
      saveToken(receivedToken, rememberMe);
      showResult('loginResult', { success: true, message: '登录成功，正在跳转...' }, true);

      // 等待一小段时间确保token已保存
      await new Promise(resolve => setTimeout(resolve, 100));

      console.log('[DEBUG] 开始获取用户信息:', api.me);
      const userResp = await request(api.me);
      console.log('[DEBUG] 用户信息响应:', JSON.stringify(userResp.data));

      if (userResp.ok && userResp.data && userResp.data.success && userResp.data.data) {
        const user = userResp.data.data;
        console.log('[DEBUG] 用户信息 - 角色:', user.role, '用户名:', user.username);

        if (user.role === 'ADMIN') {
          console.log('[DEBUG] 管理员角色 - 重定向到管理面板');
          window.location.href = 'admin-dashboard.html';
        } else {
          console.log('[DEBUG] 普通用户角色 - 重定向到用户面板');
          window.location.href = 'user-dashboard.html';
        }
      } else {
        console.error('[DEBUG] 获取用户信息失败:', userResp.data?.message || '未知错误');
        showResult('loginResult', { success: false, message: `登录成功但获取用户信息失败: ${userResp.data?.message || '未知错误'}` });
      }
    } else {
      console.error('[DEBUG] 登录失败 - 响应数据:', JSON.stringify(loginResp.data));
      showResult('loginResult', loginResp.data || { success: false, message: '登录失败，请检查用户名或密码' });
    }
  } catch (error) {
    console.error('[DEBUG] 登录过程异常:', error);
    showResult('loginResult', { success: false, message: '登录过程异常: ' + error.message });
  }
}

// 注册处理函数
async function onRegister(e) {
  e.preventDefault();
  const username = e.target.username.value.trim();
  const password = e.target.password.value;
  const email = e.target.email.value.trim();
  const phone = e.target.phone.value.trim();
  const name = e.target.name.value.trim();
  
  if (!username || !password) {
    showResult('registerResult', { success: false, message: '用户名和密码不能为空' });
    return;
  }
  
  const body = { username, password, email, phone, name };
  const resp = await request(api.register, { 
    method: 'POST', 
    body: JSON.stringify(body) 
  });
  
  if (resp.ok && resp.data && resp.data.success) {
    showResult('registerResult', resp.data, true);
    // 清空表单
    e.target.reset();
    // 切换到登录表单
    document.getElementById('registerForm').classList.add('hidden');
    document.getElementById('loginForm').classList.remove('hidden');
  } else {
    showResult('registerResult', resp.data || { success: false, message: '注册失败' });
  }
}

// 显示注册表单
function showRegisterForm() {
  document.getElementById('loginForm').classList.add('hidden');
  document.getElementById('registerForm').classList.remove('hidden');
}

// 显示登录表单
function showLoginForm() {
  document.getElementById('registerForm').classList.add('hidden');
  document.getElementById('loginForm').classList.remove('hidden');
}